#Author : AcerMo
#date 2024-11-19
from Train import game
'''
在这个环境中，智能体（agent）需要控制一个航天器在月球表面上着陆。
航天器的动作包括开启向上主引擎、开启左侧引擎、开启右侧引擎、关闭引擎四个动作
环境的状态包括航天器的位置(x,y)、速度xv,yv、角度、角速度、两个支架是否接触到地面共八个状态参数
智能体的任务是在一定的时间内通过选择正确的动作使航天器安全着陆。
从屏幕的顶部移动到着陆点并停在那里的奖励约为100-140分。
如果着陆器离开了着陆台，它就会失去奖励。如果着陆器坠毁，它将获得额外的-100分。
如果它休息了，它将得到额外的+100分。每一个与地面接触的腿是+10分。
开启主引擎，每帧-0.3分。发射侧引擎，每帧-0.03分。解决了就是200分，即达到既定目标。
'''
'''
env = gym.make("LunarLander-v3", render_mode="human")
for _ in range(100):
    # this is where you would insert your policy
    action = env.action_space.sample()
    print(env.action_space)
    # step (transition) through the environment with the action
    # receiving the next observation, reward and if the episode has terminated or truncated
    observation, reward, terminated, truncated, info = env.step(action)
    # If the episode has ended then we can reset to start a new episode
    if terminated or truncated:
        observation, info = env.reset()

env.close()'''

G = game(max_iter=10000,memory_size=10000,e_greedy=0.1,name="LunarLander-v3",insize=8,outsize=4,loss_fn='MSE',optimizer='Adam')
G.train(-200,50)